package com.example.usbhidtool.tcp;

import com.easysocket.EasySocket;
import com.google.gson.Gson;

import java.nio.ByteBuffer;

/**
 * Author：Mapogo
 * Date：2021/1/13
 * Note：
 */
public class AbsMessage implements IMessage {

    public AbsMessage() {
    }

    @Override
    public byte[] pack() {
        // 如果没有设置消息协议，则直接发送消息
        if (EasySocket.getInstance().getDefOptions().getMessageProtocol() == null) {
            String newStr = new Gson().toJson(this) + "\n";
            byte[] body = newStr.getBytes();
            return body;
        } else {
            byte[] body = new Gson().toJson(this).getBytes();
            ByteBuffer bb = ByteBuffer.allocate(body.length + 4);
            //简单协议，和后台协商，前4个字节表示数据长度
            bb.putInt(body.length);
            bb.put(body);
            return bb.array();
        }
    }
}
